package com.mastercard.assets.web.struts.forms ;

import java.util.ArrayList;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;

import com.mastercard.assets.MasterCardException;
import com.mastercard.assets.jpa.TblCategoria;
import com.mastercard.assets.jpa.TblFlujo;
import com.mastercard.assets.jpa.TblSubcateg;
import com.mastercard.assets.jpa.TblUsuario;
import com.mastercard.assets.util.MCUtil;
import com.mastercard.assets.util.dao.MasterCardDAO;
import com.mastercard.assets.web.util.to.UserLogin;

public class AssetEditarForm
	extends
		ActionForm
{
	private int cveAsset ;
	private String cambioSelect ;
	private String nombre ;
	private String descripcion ;
	private int categoria ;
	private int subcategoria ;
	private String submit ;
	private String eventDate ;
	private String entregabcDate ;
	private String aprobacionbcDate ;
	private String solicitarCotizacionDate ;
	private String requisicionCompraDate ;
	private String subirContratoDate ;
	private String subirPrimeraFacturaDate ;
	private String confirmacionSedeDate ;
	private String finCampanaDate ;
	private String subirSegundaFacturaDate ;
	private String entregaAgendaDate ;
	private String entregaGanadoresDate ;
	private String entregaBoletosDate ;
	private String salidaViajeDate ;
	private String regresoViajeDate ;
	private String evaluacionDate ;
	
	private String eventDateF ;
	private String entregabcDateF ;
	private String aprobacionbcDateF ;
	private String solicitarCotizacionDateF ;
	private String requisicionCompraDateF ;
	private String subirContratoDateF ;
	private String subirPrimeraFacturaDateF ;
	private String confirmacionSedeDateF ;
	private String finCampanaDateF ;
	private String subirSegundaFacturaDateF ;
	private String entregaAgendaDateF ;
	private String entregaGanadoresDateF ;
	private String entregaBoletosDateF ;
	private String salidaViajeDateF ;
	private String regresoViajeDateF ;
	private String evaluacionDateF ;
	
	private String numeroDiasViaje ;
	private boolean fechasConfirmadas ;
	private String sencilloLocal ;
	private String dobleLocal ;
	private String sencilloRegional ;
	private String dobleRegional ;
	private float sencilloLocalF ;
	private float dobleLocalF ;
	private float sencilloRegionalF ;
	private float dobleRegionalF ;
	private int numeroDiasViajeI ;
	
	private int flujoImplEvento ;
	private int flujoCampEvento ;
	private int tipoMoneda ;
	private int tipoHabitacion ;
        private int cveAgencia ;
    private int cveFlujoDeAutorizacion;
	

	public int getTipoHabitacion() {
		return tipoHabitacion;
	}

	public void setTipoHabitacion(int tipoHabitacion) {
		this.tipoHabitacion = tipoHabitacion;
	}

	public int getTipoMoneda() {
		return tipoMoneda;
	}

	public void setTipoMoneda(int tipoMoneda) {
		this.tipoMoneda = tipoMoneda;
	}

	public int getFlujoImplEvento() {
		return flujoImplEvento;
	}

	public void setFlujoImplEvento(int flujoImplEvento) {
		this.flujoImplEvento = flujoImplEvento;
	}

	public int getFlujoCampEvento() {
		return flujoCampEvento;
	}

	public void setFlujoCampEvento(int flujoCampEvento) {
		this.flujoCampEvento = flujoCampEvento;
	}

	public int getCveAsset() {
		return cveAsset;
	}

	public void setCveAsset(int cveAsset) {
		this.cveAsset = cveAsset;
	}

	public ActionErrors validate( ActionMapping mapping , HttpServletRequest request )
	{
		ActionErrors errors = new ActionErrors( ) ;
		
//		System.out.println( "$$$$" ) ;
		
		// en el caso de que no se trate de cambioSelect
		if( cambioSelect == null || cambioSelect.trim( ).length( ) == 0 )
		{
			if( categoria == 0 )
				errors.add( "CategoriaEmpty" , new ActionMessage( "com.mastercard.assets.web.errors.modules.asset.alta.CategoriaEmpty" ) ) ;
			if( subcategoria == 0 )
				errors.add( "CategoriaEmpty" , new ActionMessage( "com.mastercard.assets.web.errors.modules.asset.alta.SubcategoriaEmpty" ) ) ;
		}
		// en caso de que si se trate de un cambioSelect
		else
		{
			return errors ;
		}
		
		// si el nombre es vacio
		if( nombre == null || nombre.trim( ).length( ) == 0 )
			errors.add( "NombreEmpty" , new ActionMessage( "com.mastercard.assets.web.errors.modules.asset.alta.NombreEmpty" ) ) ;
		
		// en caso de que la descripcion sea nula
		if( descripcion == null )
			descripcion = "" ;
		
		// revisa la fecha del evento
//		if( eventDate == null || eventDate.trim( ).length( ) == 0 )
//			errors.add( "EventoDateEmpty" , new ActionMessage( "com.mastercard.assets.web.errors.modules.asset.alta.EventoDateEmpty" ) ) ;
//			
//		// revisa la fecha del evento
//		if( entregabcDate == null || entregabcDate.trim( ).length( ) == 0 )
//			errors.add( "EntregaBCDateEmpty" , new ActionMessage( "com.mastercard.assets.web.errors.modules.asset.alta.EntregaBCDateEmpty" ) ) ;
//			
//		// revisa la fecha del evento
//		if( aprobacionbcDate == null || aprobacionbcDate.trim( ).length( ) == 0 )
//			errors.add( "AprobacionBCDateEmpty" , new ActionMessage( "com.mastercard.assets.web.errors.modules.asset.alta.AprobacionBCDateEmpty" ) ) ;
//			
//		// revisa la fecha limite de solicitar cotizacion
//		if( solicitarCotizacionDate == null || solicitarCotizacionDate.trim( ).length( ) == 0 )
//			errors.add( "SolicitarCotizacionDateEmpty" , new ActionMessage( "com.mastercard.assets.web.errors.modules.asset.alta.SolicitarCotizacionDateEmpty" ) ) ;
//			
//		// revisa la fecha limite de requisicion de compra
//		if( requisicionCompraDate == null || requisicionCompraDate.trim( ).length( ) == 0 )
//			errors.add( "RequisicionCompraDateEmpty" , new ActionMessage( "com.mastercard.assets.web.errors.modules.asset.alta.RequisicionCompraDateEmpty" ) ) ;
//			
//		// revisa la fecha limite de requisicion de compra
//		if( subirContratoDate == null || subirContratoDate.trim( ).length( ) == 0 )
//			errors.add( "SubirContratoDateEmpty" , new ActionMessage( "com.mastercard.assets.web.errors.modules.asset.alta.SubirContratoDateEmpty" ) ) ;
//			
//		// revisa la fecha limite de subir primer factura
//		if( subirPrimeraFacturaDate == null || subirPrimeraFacturaDate.trim( ).length( ) == 0 )
//			errors.add( "SubirPrimeraFacturaDateEmpty" , new ActionMessage( "com.mastercard.assets.web.errors.modules.asset.alta.SubirPrimeraFacturaDateEmpty" ) ) ;
//			
//		// revisa la fecha limite de confirmacion de sede
//		if( confirmacionSedeDate == null || confirmacionSedeDate.trim( ).length( ) == 0 )
//			errors.add( "ConfirmacionSedeDateEmpty" , new ActionMessage( "com.mastercard.assets.web.errors.modules.asset.alta.ConfirmacionSedeDateEmpty" ) ) ;
//			
//		// revisa la fecha fin de campana
//		if( finCampanaDate == null || finCampanaDate.trim( ).length( ) == 0 )
//			errors.add( "FinCampanaDateEmpty" , new ActionMessage( "com.mastercard.assets.web.errors.modules.asset.alta.FinCampanaDateEmpty" ) ) ;
//			
//		// revisa la fecha limite subir segunda factura
//		if( subirSegundaFacturaDate == null || subirSegundaFacturaDate.trim( ).length( ) == 0 )
//			errors.add( "SubirSegundaFacturaDateEmpty" , new ActionMessage( "com.mastercard.assets.web.errors.modules.asset.alta.SubirSegundaFacturaDateEmpty" ) ) ;
//			
//		// revisa la fecha de entrega de la agenda
//		if( entregaAgendaDate == null || entregaAgendaDate.trim( ).length( ) == 0 )
//			errors.add( "EntregaAgendaDateEmpty" , new ActionMessage( "com.mastercard.assets.web.errors.modules.asset.alta.EntregaAgendaDateEmpty" ) ) ;
//			
//		// revisa la fecha de entrega de ganadores
//		if( entregaGanadoresDate == null || entregaGanadoresDate.trim( ).length( ) == 0 )
//			errors.add( "EntregaGanadoresDateEmpty" , new ActionMessage( "com.mastercard.assets.web.errors.modules.asset.alta.EntregaGanadoresDateEmpty" ) ) ;
//			
//		// revisa la fecha limite de entrega de boletos
//		if( entregaBoletosDate == null || entregaBoletosDate.trim( ).length( ) == 0 )
//			errors.add( "EntregaBoletosDateEmpty" , new ActionMessage( "com.mastercard.assets.web.errors.modules.asset.alta.EntregaBoletosDateEmpty" ) ) ;
//			
//		// revisa la fecha de salida de viaje
//		if( salidaViajeDate == null || salidaViajeDate.trim( ).length( ) == 0 )
//			errors.add( "SalidaViajeDateEmpty" , new ActionMessage( "com.mastercard.assets.web.errors.modules.asset.alta.SalidaViajeDateEmpty" ) ) ;
//			
//		// revisa la fecha de regreso de viaje
//		if( regresoViajeDate == null || regresoViajeDate.trim( ).length( ) == 0 )
//			errors.add( "RegresoViajeDateEmpty" , new ActionMessage( "com.mastercard.assets.web.errors.modules.asset.alta.RegresoViajeDateEmpty" ) ) ;
//			
//		// revisa la fecha de evaluacion
//		if( evaluacionDate == null || evaluacionDate.trim( ).length( ) == 0 )
//			errors.add( "EvaluacionDateEmpty" , new ActionMessage( "com.mastercard.assets.web.errors.modules.asset.alta.EvaluacionDateEmpty" ) ) ;
		
		// calcula numero de dias de viaje
//		if( salidaViajeDate != null && salidaViajeDate.trim( ).length( ) > 0 &&  regresoViajeDate != null && regresoViajeDate.trim( ).length( ) > 0 )
//		{
//			String[ ] eaTokens = regresoViajeDate.split( "/" ) ;
//			int anoEA = Integer.parseInt( eaTokens[ 2 ] ) ;
//			int mesEA = Integer.parseInt( eaTokens[ 1 ] ) - 1 ;
//			int diaEA = Integer.parseInt( eaTokens[ 0 ] ) ;
//			
//			String[ ] egTokens = salidaViajeDate.split( "/" ) ;
//			int anoEG = Integer.parseInt( egTokens[ 2 ] ) ;
//			int mesEG = Integer.parseInt( egTokens[ 1 ] ) - 1 ;
//			int diaEG = Integer.parseInt( egTokens[ 0 ] ) ;
//			
//			// construye los calendar
//			GregorianCalendar gcEA = new GregorianCalendar( anoEA , mesEA , diaEA ) ;
//			GregorianCalendar gcEG = new GregorianCalendar( anoEG , mesEG , diaEG ) ;
//			
//			System.out.println( gcEA ) ;
//			System.out.println( gcEG ) ;
//			
//			// calcula el tiempo en dias entre uno y otro
//			long milisEA = gcEA.getTimeInMillis( ) ;
//			long milisEG = gcEG.getTimeInMillis( ) ;
//			
//			// diferencia en milisegundos
//			// milisEG debe ser mayor a milisEA
//			long dif = milisEA - milisEG ;
//			
//			int dias = ( int ) ( dif / ( 1000L * 60L * 60L * 24L ) ) ;
//			
//			numeroDiasViajeI = dias ;
//			
//			// verifica si las fechas estan confirmadas
//			if( numeroDiasViajeI < 0 )
//				errors.add( "DiasViajeEmpty" , new ActionMessage( "com.mastercard.assets.web.errors.modules.asset.alta.DiasViajeEmpty" ) ) ;
//			
//			System.out.println( "Numero de dias de viaje: " + numeroDiasViajeI ) ;
//		}
			
//		// revisa numero de dias de viaje
//		if( numeroDiasViaje == null || numeroDiasViaje.trim( ).length( ) == 0 )
//			errors.add( "NumeroDiasViajeEmpty" , new ActionMessage( "com.mastercard.assets.web.errors.modules.asset.alta.NumeroDiasViajeEmpty" ) ) ;
//		// en csao de que no sea vacio
//		else
//		{
//			// intenta convertir
//			try
//			{
//				numeroDiasViajeI = Integer.parseInt( numeroDiasViaje ) ;
//			}catch( Exception e )
//			{
//				errors.add( "NumeroDiasViajeNotNumber" , new ActionMessage( "com.mastercard.assets.web.errors.modules.asset.alta.NumeroDiasViajeNotNumber" ) ) ;
//			}
//		}
		
//		System.out.println( "Sencillo local: " + sencilloLocal ) ;
		// revisa sencillo local
		if( sencilloLocal != null && sencilloLocal.trim( ).length( ) > 0 )
		{
			// intenta convertir
			try
			{
				sencilloLocalF = Float.parseFloat( sencilloLocal ) ;
			}catch( Exception e )
			{
				errors.add( "SencilloLocalNotNumber" , new ActionMessage( "com.mastercard.assets.web.errors.modules.asset.alta.SencilloLocalNotNumber" ) ) ;
			}
		}
//		System.out.println( "Sencillo local: " + sencilloLocalF ) ;
			
		// revisa doble local
		if( dobleLocal != null && dobleLocal.trim( ).length( ) > 0 )
		{
			// intenta convertir
			try
			{
				dobleLocalF = Float.parseFloat( dobleLocal ) ;
			}catch( Exception e )
			{
				errors.add( "DobleLocalNotNumber" , new ActionMessage( "com.mastercard.assets.web.errors.modules.asset.alta.DobleLocalNotNumber" ) ) ;
			}
		}
		
		// revisa sencillo regional
		if( sencilloRegional != null && sencilloRegional.trim( ).length( ) > 0 )
		{
			// intenta convertir
			try
			{
				sencilloRegionalF = Float.parseFloat( sencilloRegional ) ;
			}catch( Exception e )
			{
				errors.add( "SencilloRegionalNotNumber" , new ActionMessage( "com.mastercard.assets.web.errors.modules.asset.alta.SencilloRegionalNotNumber" ) ) ;
			}
		}
		
		// revisa doble regional
		if( dobleRegional != null && dobleRegional.trim( ).length( ) > 0 )
		{
			// intenta convertir
			try
			{
				dobleRegionalF = Float.parseFloat( dobleRegional ) ;
			}catch( Exception e )
			{
				errors.add( "DobleRegionalNotNumber" , new ActionMessage( "com.mastercard.assets.web.errors.modules.asset.alta.DobleRegionalNotNumber" ) ) ;
			}
		}
		
		// revisa doble regional
//		if( tipoHabitacion != null && tipoHabitacion.trim( ).length( ) > 0 )
//		{
//			// intenta convertir
//			try
//			{
//				tipoHabitacionI = Integer.parseInt( tipoHabitacion ) ;
//			}catch( Exception e )
//			{
//				errors.add( "TipoHabitacionNotNumber" , new ActionMessage( "com.mastercard.assets.web.errors.modules.asset.alta.TipoHabitacionNotNumber" ) ) ;
//			}
//		}
		
		// en caso de que fecha ganadores y entrega agenda
//		if( 
//				entregaAgendaDate != null && entregaAgendaDate.trim( ).length( ) > 0 &&
//				entregaGanadoresDate != null && entregaGanadoresDate.trim( ).length( ) > 0 )
//		{
//			// revisa que entrega agenda sea por lo menos una semana antes de entrega ganadores
//			// desmembra las fechas
//			String[ ] eaTokens = entregaAgendaDate.split( "/" ) ;
//			int anoEA = Integer.parseInt( eaTokens[ 2 ] ) ;
//			int mesEA = Integer.parseInt( eaTokens[ 1 ] ) - 1 ;
//			int diaEA = Integer.parseInt( eaTokens[ 0 ] ) ;
//			
//			String[ ] egTokens = entregaGanadoresDate.split( "/" ) ;
//			int anoEG = Integer.parseInt( egTokens[ 2 ] ) ;
//			int mesEG = Integer.parseInt( egTokens[ 1 ] ) - 1 ;
//			int diaEG = Integer.parseInt( egTokens[ 0 ] ) ;
//			
//			// construye los calendar
//			GregorianCalendar gcEA = new GregorianCalendar( anoEA , mesEA , diaEA ) ;
//			GregorianCalendar gcEG = new GregorianCalendar( anoEG , mesEG , diaEG ) ;
//			
//			// calcula el tiempo en dias entre uno y otro
//			long milisEA = gcEA.getTimeInMillis( ) ;
//			long milisEG = gcEG.getTimeInMillis( ) ;
//			
//			// diferencia en milisegundos
//			// milisEG debe ser mayor a milisEA
//			// dif debe ser positivo y minimo 5 dias
//			long dif = milisEG - milisEA ;
//			
//			// calcula el tiempo en milisegundos de 7 dias
//			long sevenDays = 1000L * 60L * 60L * 24L * 7L ;
//			
//			// en caso de que sea menor a los cinco dias
//			if( dif < sevenDays )
//				errors.add( "EntregaAgendaMinus7DaysEntregaGanadores" , new ActionMessage( "com.mastercard.assets.web.errors.modules.asset.alta.EntregaAgendaMinus7DaysEntregaGanadores" ) ) ;
//		}
		
		// en caso de que haya errores
		if( errors.size( ) > 0 )
		{
			try
			{
				// calcula las categorias
				List< TblCategoria > categs = MasterCardDAO.getAllActiveCategorias( ) ;
				
				List< TblCategoria > resCateg = new ArrayList< TblCategoria >( ) ;
				
				// quita aquellos uqe no tengan subcategorias
				for( TblCategoria categ : categs )
				{
					// toma las subcateg
					List< TblSubcateg > categSubcateg = categ.getTblSubcategs( ) ;
					
					// en csao de null o 0
					if( categSubcateg != null && categSubcateg.size( ) > 0 )
						resCateg.add( categ ) ;
				}
				
				// en caso de que solamante haya un registro
				if( resCateg.size( ) == 1 )
				{
					List< TblSubcateg > resCategSubcate = resCateg.get( 0 ).getTblSubcategs( ) ;
					
					// coloca los regs de las subcategorias
					request.setAttribute( "Subcategorias" , resCategSubcate ) ;
					
					AssetEditarForm f = new AssetEditarForm( ) ;
					f.setCategoria( resCateg.get( 0 ).getCveCategoria( ) ) ;
					// en csao de que solamente sea una subcategoria
					if( resCategSubcate.size( ) == 1 )
						f.setSubcategoria( resCategSubcate.get( 0 ).getCveSubcateg( ) ) ;
					
					request.setAttribute( "AssetAltaForm" , f ) ;
				}
				else
				{
					// en csao de que haya alguna categoria
					if( categoria > 0 )
						request.setAttribute( "Subcategorias" , MasterCardDAO.findCategoryById( categoria ).getTblSubcategs( ) ) ;
					// en caso contrario
					else
						// coloca los regs de las subcategorias
						request.setAttribute( "Subcategorias" , new ArrayList< TblSubcateg >( ) ) ;
				}
				
				// levanta los flujos de tipo implementacion
				List< TblFlujo > flujosImplementacion = MasterCardDAO.getAllActiveImplementationFlows( ) ;
				// levanta los flujos de tipo campania
				List< TblFlujo > flujosCampania = MasterCardDAO.getAllActiveCampaignFlows( ) ;
				
				// en caso de que no haya flujos no hay problema, puesto que el asset se queda asi y en la edicion puede asignarle el flujo
				
				request.setAttribute( "FlujosImplementacion" , flujosImplementacion ) ;
				request.setAttribute( "FlujosCampania" , flujosCampania ) ;
				
				// levanta las categorias
				request.setAttribute( "Categorias" , resCateg ) ;
				
			}catch( Exception e )
			{
                            MasterCardDAO.closeEntityManager( ) ;
				e.printStackTrace( ) ;
			}
			
			
		}
		
                MasterCardDAO.closeEntityManager( ) ;
		return errors ;
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public String getDescripcion() {
		return descripcion;
	}

	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}

	public int getCategoria() {
		return categoria;
	}

	public void setCategoria(int categoria) {
		this.categoria = categoria;
	}

	public int getSubcategoria() {
		return subcategoria;
	}

	public void setSubcategoria(int subcategoria) {
		this.subcategoria = subcategoria;
	}

	public String getSubmit() {
		return submit;
	}

	public void setSubmit(String submit) {
		this.submit = submit;
	}

	public String getEventDate() {
		return eventDate;
	}

	public void setEventDate(String eventDate) {
		this.eventDate = eventDate;
	}

	public String getEntregabcDate() {
		return entregabcDate;
	}

	public void setEntregabcDate(String entregabcDate) {
		this.entregabcDate = entregabcDate;
	}

	public String getAprobacionbcDate() {
		return aprobacionbcDate;
	}

	public void setAprobacionbcDate(String aprobacionbcDate) {
		this.aprobacionbcDate = aprobacionbcDate;
	}

	public String getSolicitarCotizacionDate() {
		return solicitarCotizacionDate;
	}

	public void setSolicitarCotizacionDate(String solicitarCotizacionDate) {
		this.solicitarCotizacionDate = solicitarCotizacionDate;
	}

	public String getRequisicionCompraDate() {
		return requisicionCompraDate;
	}

	public void setRequisicionCompraDate(String requisicionCompraDate) {
		this.requisicionCompraDate = requisicionCompraDate;
	}

	public String getSubirContratoDate() {
		return subirContratoDate;
	}

	public void setSubirContratoDate(String subirContratoDate) {
		this.subirContratoDate = subirContratoDate;
	}

	public String getSubirPrimeraFacturaDate() {
		return subirPrimeraFacturaDate;
	}

	public void setSubirPrimeraFacturaDate(String subirPrimeraFacturaDate) {
		this.subirPrimeraFacturaDate = subirPrimeraFacturaDate;
	}

	public String getConfirmacionSedeDate() {
		return confirmacionSedeDate;
	}

	public void setConfirmacionSedeDate(String confirmacionSedeDate) {
		this.confirmacionSedeDate = confirmacionSedeDate;
	}

	public String getFinCampanaDate() {
		return finCampanaDate;
	}

	public void setFinCampanaDate(String finCampanaDate) {
		this.finCampanaDate = finCampanaDate;
	}

	public String getSubirSegundaFacturaDate() {
		return subirSegundaFacturaDate;
	}

	public void setSubirSegundaFacturaDate(String subirSegundaFacturaDate) {
		this.subirSegundaFacturaDate = subirSegundaFacturaDate;
	}

	public String getEntregaAgendaDate() {
		return entregaAgendaDate;
	}

	public void setEntregaAgendaDate(String entregaAgendaDate) {
		this.entregaAgendaDate = entregaAgendaDate;
	}

	public String getEntregaGanadoresDate() {
		return entregaGanadoresDate;
	}

	public void setEntregaGanadoresDate(String entregaGanadoresDate) {
		this.entregaGanadoresDate = entregaGanadoresDate;
	}

	public String getEntregaBoletosDate() {
		return entregaBoletosDate;
	}

	public void setEntregaBoletosDate(String entregaBoletosDate) {
		this.entregaBoletosDate = entregaBoletosDate;
	}

	public String getSalidaViajeDate() {
		return salidaViajeDate;
	}

	public void setSalidaViajeDate(String salidaViajeDate) {
		this.salidaViajeDate = salidaViajeDate;
	}

	public String getRegresoViajeDate() {
		return regresoViajeDate;
	}

	public void setRegresoViajeDate(String regresoViajeDate) {
		this.regresoViajeDate = regresoViajeDate;
	}

	public String getEvaluacionDate() {
		return evaluacionDate;
	}

	public void setEvaluacionDate(String evaluacionDate) {
		this.evaluacionDate = evaluacionDate;
	}

	public String getNumeroDiasViaje() {
		return numeroDiasViaje;
	}

	public void setNumeroDiasViaje(String numeroDiasViaje) {
		this.numeroDiasViaje = numeroDiasViaje;
	}

	public boolean getFechasConfirmadas() {
		return fechasConfirmadas;
	}

	public void setFechasConfirmadas(boolean fechasConfirmadas) {
		this.fechasConfirmadas = fechasConfirmadas;
	}

	public String getSencilloLocal() {
		return sencilloLocal;
	}

	public void setSencilloLocal(String sencilloLocal) {
		this.sencilloLocal = sencilloLocal;
	}

	public String getDobleLocal() {
		return dobleLocal;
	}

	public void setDobleLocal(String dobleLocal) {
		this.dobleLocal = dobleLocal;
	}

	public String getSencilloRegional() {
		return sencilloRegional;
	}

	public void setSencilloRegional(String sencilloRegional) {
		this.sencilloRegional = sencilloRegional;
	}

	public String getDobleRegional() {
		return dobleRegional;
	}

	public void setDobleRegional(String dobleRegional) {
		this.dobleRegional = dobleRegional;
	}

	public String getCambioSelect() {
		return cambioSelect;
	}

	public void setCambioSelect(String cambioSelect) {
		this.cambioSelect = cambioSelect;
	}

	public float getSencilloLocalF() {
		return sencilloLocalF;
	}

	public float getDobleLocalF() {
		return dobleLocalF;
	}

	public float getSencilloRegionalF() {
		return sencilloRegionalF;
	}

	public float getDobleRegionalF() {
		return dobleRegionalF;
	}

	public int getNumeroDiasViajeI() {
		return numeroDiasViajeI;
	}

	public String getEventDateF() {
		if( eventDate == null || eventDate.length( ) != 10 )
			return "" ;
		
		String[ ] tokens = eventDate.split( "/" ) ;
		
		if( tokens.length != 3 )
			return "" ;
		
		return tokens[ 2 ] + "-" + tokens[ 1 ] + "-" + tokens[ 0 ] ;
	}

	public String getEntregabcDateF() {
		if( entregabcDate == null || entregabcDate.length( ) != 10 )
			return "" ;
		
		String[ ] tokens = entregabcDate.split( "/" ) ;
		
		if( tokens.length != 3 )
			return "" ;
		
		return tokens[ 2 ] + "-" + tokens[ 1 ] + "-" + tokens[ 0 ] ;
	}

	public String getAprobacionbcDateF() {
		if( aprobacionbcDate == null || aprobacionbcDate.length( ) != 10 )
			return "" ;
		
		String[ ] tokens = aprobacionbcDate.split( "/" ) ;
		
		if( tokens.length != 3 )
			return "" ;
		
		return tokens[ 2 ] + "-" + tokens[ 1 ] + "-" + tokens[ 0 ] ;
	}

	public String getSolicitarCotizacionDateF() {
		if( solicitarCotizacionDate == null || solicitarCotizacionDate.length( ) != 10 )
			return "" ;
		
		String[ ] tokens = solicitarCotizacionDate.split( "/" ) ;
		
		if( tokens.length != 3 )
			return "" ;
		
		return tokens[ 2 ] + "-" + tokens[ 1 ] + "-" + tokens[ 0 ] ;
	}

	public String getRequisicionCompraDateF() {
		if( requisicionCompraDate == null || requisicionCompraDate.length( ) != 10 )
			return "" ;
		
		String[ ] tokens = requisicionCompraDate.split( "/" ) ;
		
		if( tokens.length != 3 )
			return "" ;
		
		return tokens[ 2 ] + "-" + tokens[ 1 ] + "-" + tokens[ 0 ] ;
	}

	public String getSubirContratoDateF() {
		if( subirContratoDate == null || subirContratoDate.length( ) != 10 )
			return "" ;
		
		String[ ] tokens = subirContratoDate.split( "/" ) ;
		
		if( tokens.length != 3 )
			return "" ;
		
		return tokens[ 2 ] + "-" + tokens[ 1 ] + "-" + tokens[ 0 ] ;
	}

	public String getSubirPrimeraFacturaDateF() {
		if( subirPrimeraFacturaDate == null || subirPrimeraFacturaDate.length( ) != 10 )
			return "" ;
		
		String[ ] tokens = subirPrimeraFacturaDate.split( "/" ) ;
		
		if( tokens.length != 3 )
			return "" ;
		
		return tokens[ 2 ] + "-" + tokens[ 1 ] + "-" + tokens[ 0 ] ;
	}

	public String getConfirmacionSedeDateF() {
		if( confirmacionSedeDate == null || confirmacionSedeDate.length( ) != 10 )
			return "" ;
		
		String[ ] tokens = confirmacionSedeDate.split( "/" ) ;
		
		if( tokens.length != 3 )
			return "" ;
		
		return tokens[ 2 ] + "-" + tokens[ 1 ] + "-" + tokens[ 0 ] ;
	}

	public String getFinCampanaDateF() {
		if( finCampanaDate == null || finCampanaDate.length( ) != 10 )
			return "" ;
		
		String[ ] tokens = finCampanaDate.split( "/" ) ;
		
		if( tokens.length != 3 )
			return "" ;
		
		return tokens[ 2 ] + "-" + tokens[ 1 ] + "-" + tokens[ 0 ] ;
	}

	public String getSubirSegundaFacturaDateF() {
		if( subirSegundaFacturaDate == null || subirSegundaFacturaDate.length( ) != 10 )
			return "" ;
		
		String[ ] tokens = subirSegundaFacturaDate.split( "/" ) ;
		
		if( tokens.length != 3 )
			return "" ;
		
		return tokens[ 2 ] + "-" + tokens[ 1 ] + "-" + tokens[ 0 ] ;
	}

	public String getEntregaAgendaDateF() {
		if( entregaAgendaDate == null || entregaAgendaDate.length( ) != 10 )
			return "" ;
		
		String[ ] tokens = entregaAgendaDate.split( "/" ) ;
		
		if( tokens.length != 3 )
			return "" ;
		
		return tokens[ 2 ] + "-" + tokens[ 1 ] + "-" + tokens[ 0 ] ;
	}

	public String getEntregaGanadoresDateF() {
		if( entregaGanadoresDate == null || entregaGanadoresDate.length( ) != 10 )
			return "" ;
		
		String[ ] tokens = entregaGanadoresDate.split( "/" ) ;
		
		if( tokens.length != 3 )
			return "" ;
		
		return tokens[ 2 ] + "-" + tokens[ 1 ] + "-" + tokens[ 0 ] ;
	}

	public String getEntregaBoletosDateF() {
		if( entregaBoletosDate == null || entregaBoletosDate.length( ) != 10 )
			return "" ;
		
		String[ ] tokens = entregaBoletosDate.split( "/" ) ;
		
		if( tokens.length != 3 )
			return "" ;
		
		return tokens[ 2 ] + "-" + tokens[ 1 ] + "-" + tokens[ 0 ] ;
	}

	public String getSalidaViajeDateF() {
		if( salidaViajeDate == null || salidaViajeDate.length( ) != 10 )
			return "" ;
		
		String[ ] tokens = salidaViajeDate.split( "/" ) ;
		
		if( tokens.length != 3 )
			return "" ;
		
		return tokens[ 2 ] + "-" + tokens[ 1 ] + "-" + tokens[ 0 ] ;
	}

	public String getRegresoViajeDateF() {
		if( regresoViajeDate == null || regresoViajeDate.length( ) != 10 )
			return "" ;
		
		String[ ] tokens = regresoViajeDate.split( "/" ) ;
		
		if( tokens.length != 3 )
			return "" ;
		
		return tokens[ 2 ] + "-" + tokens[ 1 ] + "-" + tokens[ 0 ] ;
	}

	public String getEvaluacionDateF() {
		if( evaluacionDate == null || evaluacionDate.length( ) != 10 )
			return "" ;
		
		String[ ] tokens = evaluacionDate.split( "/" ) ;
		
		if( tokens.length != 3 )
			return "" ;
		
		return tokens[ 2 ] + "-" + tokens[ 1 ] + "-" + tokens[ 0 ] ;
	}

    /**
     * @return the cveAgencia
     */
    public int getCveAgencia() {
        return cveAgencia;
    }

    /**
     * @param cveAgencia the cveAgencia to set
     */
    public void setCveAgencia(int cveAgencia) {
        this.cveAgencia = cveAgencia;
    }

    public int getCveFlujoDeAutorizacion( ) {
        return cveFlujoDeAutorizacion;
    }
	
    public void setCveFlujoDeAutorizacion(int cveFlujoDeAutorizacion) {
        this.cveFlujoDeAutorizacion = cveFlujoDeAutorizacion;
}
	
}
